//257

Definition for a binary tree node.
public class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode() {}
    TreeNode(int val) { this.val = val; }
    TreeNode(int val, TreeNode left, TreeNode right) {
        this.val = val;
        this.left = left;
        this.right = right;
    }
}

class Solution {
  public ListString binaryTreePaths(TreeNode root) {
      ListString ret = new LinkedList();
      ListInteger tmp = new LinkedList();
      fun(root, ret, tmp);
      return ret;
  }
  public void fun(TreeNode root, ListString ret, ListIntegertmp) {
      if (root == null) {
          return;
      }
      tmp.add(root.val);
      if (root.left == null && root.right == null) {
          ret.add(fun1(tmp));
          tmp.remove(tmp.size()-1);
          return;
      }
      fun(root.left, ret, tmp);
      fun(root.right, ret, tmp);
      tmp.remove(tmp.size()-1);
  }
  public String fun1(ListIntegertmp) {
      int len = tmp.size();
      StringBuilder str = new StringBuilder();
      str.append(tmp.get(0));
      for (int i = 1; i  len; i++) {
          str.append(-);
          str.append(tmp.get(i));
      }
      return str.toString();
  }
}
给定一个由 整数 组成的 非空 数组所表示的非负整数，在该数的基础上加一。

最高位数字存放在数组的首位， 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外，这个整数不会以零开头。

来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/plus-one
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。


class Solution {
public:
    vector<int> plusOne(vector<int>& digits) 
    {
       int size = digits.size();
       int i = 0;
       digits[size-1]++;
       for (i = size-1; i >= 0; i--)
       {
           if (digits[i] >= 10 && i != 0)
           {
               digits[i] %= 10;
               digits[i-1]++;
           }
       }
       if (digits[0] >= 10)
       {
            digits[0] %= 10;
            digits.insert(digits.begin(),1,1);
       }
       return digits;
    }
};